package com.daoImpl;

import java.util.List;

import org.springframework.orm.hibernate4.support.HibernateDaoSupport;

import com.dao.*;
import com.entity.Device;
import com.entity.Parameter;

public class ParameterDaoImpl extends HibernateDaoSupport implements ParameterDao {

	@Override
	public List<Parameter> findAllParameter() {
		List list = (List<Parameter>) this.getHibernateTemplate().find("from Parameter");
		return list;
	}

	@Override
	public Parameter findParameterByID(int parameterId) {
		return (Parameter) this.getHibernateTemplate().get(Parameter.class, parameterId);
	}

	@Override
	public Parameter findParameterByDeviceTypeAndDeviceModel(String deviceType,String deviceModel) {
		List list = (List<Parameter>) this.getHibernateTemplate().find("from Parameter a where a.deviceType=? and a.deviceModel=?",new Object[]{deviceType,deviceModel});
		Parameter parameter = (Parameter)list.get(0);
		return parameter;
	}

	@Override
	public boolean addParameter(Parameter parameter) {
		try{
            this.getHibernateTemplate().clear();
            this.getHibernateTemplate().save(parameter);
            return true;
        }catch (Exception ex){
            ex.printStackTrace();
            return false;
        }
	}

	@Override
	public boolean updateParameter(Parameter parameter) {
		try{
            this.getHibernateTemplate().clear();
            this.getHibernateTemplate().update(parameter);
            return true;
        }catch (Exception ex){
            ex.printStackTrace();
            return false;
        }
	}

	@Override
	public boolean deleteParameter(Parameter parameter) {
		try{
            this.getHibernateTemplate().delete(parameter);
            return true;
        }catch (Exception ex){
            ex.printStackTrace();
            return false;
        }
	}

	@Override
	public List<Parameter> findAllDeviceType() {
		List list = (List<Parameter>) this.getHibernateTemplate().find("from Parameter group by deviceType");
		return list;
	}

	@Override
	public List<Parameter> findAllDeviceModelByDeviceType(String deviceType) {
		List list = this.getHibernateTemplate().find("from Parameter a where a.deviceType=?",new Object[]{deviceType});
		return list;
	}

}
